#ifndef LUNAR_H
#define LUNAR_H

// 农历与公历互转
int LunarToSolar(int year, int month, int day, int isLeap, int *gy, int *gm, int *gd);
int SolarToLunar(int year, int month, int day, int *ly, int *lm, int *ld, int *isLeap);

// 获取天干地支字符串
void GetGanZhi(int year, int month, int day, char *gz, int bufsize);

// 获取节气信息
int GetSolarTerm(int year, int month, int day, char *term, int bufsize);
void GetMonthSolarTerms(int year, int month, int terms[2][2]); // 返回本月两个节气的日期

// 判断是否闰月
int IsLeapMonth(int year, int month);

// =================== 节气日期结构体声明 ===================
typedef struct {
    int month; // 节气所在公历月
    int day;   // 节气公历日
} SolarTermDate;
// =========================================================

// 查表获取节气日期
SolarTermDate get_solar_term_date(int year, int term_index);
extern const char* SOLAR_TERMS[24];

// 农历数字转汉字
void LunarDayToChinese(int day, char* buf, int bufsize);
void LunarMonthToChinese(int month, int isLeap, char* buf, int bufsize);
void LunarYearToChinese(int year, char* buf, int bufsize);

#endif // LUNAR_H 